<?php
/**
 * ------------------------------------------------------------------------
 * JA Popup plugin for Joomla 1.7
 * ------------------------------------------------------------------------
 * Copyright (C) 2004-2011 J.O.O.M Solutions Co., Ltd. All Rights Reserved.
 * @license - GNU/GPL, http://www.gnu.org/licenses/gpl.html
 * Author: J.O.O.M Solutions Co., Ltd
 * Websites: http://www.joomlart.com - http://www.joomlancers.com
 * ------------------------------------------------------------------------
 */

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

if (!class_exists('greyboxClass')) {
	class greyboxClass extends JAPopupHelper{
		// Modal name
		var $_modal_name;
		
		// Plugin params
		var $_pluginParams;
		
		// Param in {japopup} tag
		var $_tagParams;
		
		// Constructor
		function __construct($pluginParams){
			parent::__construct("greybox", $pluginParams);
			$this->_modal_name = "greybox";
			$this->_pluginParams = $pluginParams;
		}
				
		/**
		 * Get Library for GreyBox
		 * @param 	Array	$pluginParams	Plugin paramaters
		 * @return 	String	Include JS, CSS string.
		 * */
		function getHeaderLibrary($bodyString){				
			// Base path string
			$hs_base    = JURI::base().'plugins/system/japopup/'.$this->_modal_name.'/';
			// Tag array
			$headtag    = array();				
			$headtag[] = '<script type="text/javascript" > var GB_ROOT_DIR = "'.$hs_base.'"; </script>';
			$headtag[] = '<script src="'.$hs_base.'js/AJS.js" type="text/javascript" ></script>';
			$headtag[] = '<script src="'.$hs_base.'js/AJS_fx.js" type="text/javascript" ></script>';
			$headtag[] = '<script src="'.$hs_base.'js/gb_scripts.js" type="text/javascript" ></script>';			
			$headtag[] = '<link href="'.$hs_base.'css/gb_styles.css" type="text/css" rel="stylesheet" />';
								
			$bodyString = parent::getHeaderLibrary($bodyString, '/AJS.js', $headtag);
				
			return $bodyString;
		}
		
		/**
		 * Get content to display in Front-End.
		 * @param 	Array	$paras	Key and value in {japopup} tag
		 * @return 	String	HTML string to display
		 * */
		function getContent($paras, $content){			
			$arrData = parent::getCommonValue($paras, $content);
			
			// Generate random id
			$ranID = time().rand(0,100);
			// To standard content
			$content = html_entity_decode($content);
			
			// Config for GreyBox
			$modalBehavior  = "gb_page".$this->_pluginParams->get("group1-greybox-behavior");
			$modalGroup 	= $this->getValue("group");
			$modalContent 	= $this->getValue("content");
			if(!empty($modalGroup))
				$relGroup = 'gb_pageset['.$modalGroup.']';
			else{
				$relGroup = ''.$modalBehavior.'['.$arrData['frameWidth'].', '.$arrData['frameHeight'].']';
				$modalGroup = $ranID;
			}
			$arrData["rel"] 	= $relGroup;
			$arrData["group"]	= $modalGroup;
			$arrData["overlayShow"]		= $this->_pluginParams->get("overlay");
			$arrData["overlayOpacity"]	= $this->_pluginParams->get("overlay_opacity");
									
			$type = $this->getValue("type");
			$str = "";
			
			switch ($type){
				case "ajax":
				case "iframe":{
					$str .= $this->showDataInTemplate("greybox", "default", $arrData);
					break;
				}
				
				case "image":{
					if(!empty($modalGroup))
						$arrData['rel'] = 'gb_imageset['.$modalGroup.']';
					else{
						$arrData['rel'] = 'gb_imageset['.$ranID.']';
						$modalGroup = $ranID;
					}					
					$str .= $this->showDataInTemplate("greybox", "default", $arrData);
					break;
				}
				
				case "slideshow":{					
					
					$show = false;					

					$modalContent = explode(',', $modalContent);
					
					foreach ($modalContent as $k=>$v){
						$image_url = trim($v);
						$arrData['href'] 	= $image_url;
						$arrData['rel'] 	= "gb_imageset[".$ranID."]";
						$arrData['content']	= "";
						
						if($arrData['imageNumber'] == "all"){
							$arrData['content']	= "<img src=\"".$image_url."\" width=\"".$arrData['frameWidth']."\"/>";
						}elseif($show === false){
							$show = true;
							$arrData['content']	= $content;
						}
						$str .= $this->showDataInTemplate("greybox", "default", $arrData);
					}
					break;
				}
				
				case "youtube":{
					$str .= $this->showDataInTemplate("greybox", "default", $arrData);
					break;
				}
			}
			
			// Return value string.
			return $str;
		}
		
	}
}
?>